package com.mlr.mlrcturebackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mlr.mlrcturebackend.model.entity.PictureTag;
import com.mlr.mlrcturebackend.model.entity.Tag;

import java.util.List;

/**
 * @author mlr
 * @description 针对表【picture_tag(图片标签关联表)】的数据库操作Service
 */
public interface PictureTagService extends IService<PictureTag> {

    /**
     * 为图片添加标签
     *
     * @param pictureId 图片ID
     * @param tagIds 标签ID列表
     */
    void addTagsToPicture(Long pictureId, List<Long> tagIds);

    /**
     * 获取图片的所有标签
     *
     * @param pictureId 图片ID
     * @return 标签列表
     */
    List<Tag> getTagsByPictureId(Long pictureId);

    /**
     * 获取标签关联的所有图片ID
     *
     * @param tagId 标签ID
     * @return 图片ID列表
     */
    List<Long> getPictureIdsByTagId(Long tagId);

    /**
     * 更新图片的标签
     *
     * @param pictureId 图片ID
     * @param tagIds 新的标签ID列表
     */
    void updatePictureTags(Long pictureId, List<Long> tagIds);

    /**
     * 批量为图片添加标签
     *
     * @param pictureTagList 图片标签关联列表
     */
    void batchAddPictureTags(List<PictureTag> pictureTagList);
}